package com.uva.dbcs.gestionDeUsuarios.persistencia.impl;


import java.util.List;

import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import com.uva.dbcs.gestionDeUsuarios.dominio.Cliente;
import com.uva.dbcs.gestionDeUsuarios.persistencia.ClienteDAO;
import com.uva.dbcs.utilidades.persistencia.GenericAbstractDAO;

/**
 * Session Bean implementation class ClienteDAOImpl
 */
@Stateless
public class ClienteDAOImpl extends GenericAbstractDAO<Cliente, Integer>
		implements ClienteDAO {

	@PersistenceContext
	private EntityManager em;

	/**
	 * Default constructor.
	 */
	public ClienteDAOImpl() {
		super(Cliente.class);
	}

	@Override
	public EntityManager getEntityManager() {
		return em;
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Cliente> findUser(String user, String pass)  {
		return  getEntityManager()
				.createQuery(
						"Select t from Cliente t where t.nombre=:user and t.password=:pass")
				.setParameter("user", user).setParameter("pass", pass)
				.getResultList();
	}

	@Override
	public Cliente findClienteByDni(String nif) {
		
		return (Cliente) getEntityManager().createNamedQuery("Cliente.findByDni")
				.setParameter("nifCliente", nif).getSingleResult();
		
	}
}
